
#ifndef __PRIVATE_KEY_H
#define __PRIVATE_KEY_H

#include "PublicKey.h"

/** Interface to the key, describing a private key from a
 * public/private asymmetric key pair. */
class PrivateKey : public virtual AbstractKey
{
   public:
      /** Compares this key to a public key to see if they make a
       * matching pair. A matching pair should be capable of taking
       * plain data, which once encrypted can be decrypted again to
       * obtain the original data. */
      virtual int compareKeyBelongs(PublicKey *pubkey) const = 0;
      const int isAsymmetricKey() const;
};

#endif
